JasmineJS একটি শক্তিশালী টেস্টিং ফ্রেমওয়ার্ক, তবে বড় প্রকল্পগুলিতে টেস্ট দ্রুত এবং দক্ষভাবে চালানোর জন্য প্যারালাল এবং ডিস্ট্রিবিউটেড টেস্টিং ব্যবহার করা প্রয়োজন হতে পারে। এই ধরনের টেস্টিংে বিভিন্ন টুলস এবং পদ্ধতি ব্যবহার করা হয়, যার মাধ্যমে টেস্টগুলো একযোগে (parallel) অথবা বিভিন্ন পরিবেশে (distributed) চালানো যায়। এতে টেস্ট চলার সময় এবং সম্পাদনার দক্ষতা উল্লেখযোগ্যভাবে বৃদ্ধি পায়।
Parallel টেস্টিং
প্যারালাল টেস্টিং বলতে বোঝায় একাধিক টেস্ট একসঙ্গে একাধিক প্রক্রিয়ায় চালানো। এতে টেস্টের মোট সময় কমে যায় এবং কোডের বিভিন্ন অংশ দ্রুত পরীক্ষা করা সম্ভব হয়। প্যারালাল টেস্টিং সাধারণত বৃহৎ অ্যাপ্লিকেশন বা ওয়েবসাইটে কার্যকর, যেখানে একাধিক স্বাধীন টেস্টের জন্য আলাদা রিসোর্সের প্রয়োজন হয়।
Parallel টেস্টিং করার জন্য ব্যবহৃত টুলস
- Karma + Jasmine + Chrome Headless
Karma একটি টেস্ট রানার যা JasmineJS টেস্ট চালাতে পারে এবং ChromeHeadless ব্যবহার করে একাধিক ব্রাউজারে প্যারালাল টেস্টিং করতে সাহায্য করে। Karma কনফিগারেশন ফাইলে আপনি প্যারালাল টেস্টিং সক্ষম করতে পারেন।
// karma.conf.js
module.exports = function(config) {
config.set({
frameworks: ['jasmine'],
browsers: ['ChromeHeadless', 'FirefoxHeadless'], // একাধিক ব্রাউজারে প্যারালাল টেস্টিং
files: [
'src/**/*.js',
'spec/**/*.js'
],
concurrency: 4 // একসঙ্গে ৪টি ব্রাউজারে টেস্ট চালাবে
});
};
এখানে, concurrency সেট করে আপনি একসঙ্গে কতগুলো ব্রাউজারে টেস্ট চালাতে চান তা নির্ধারণ করতে পারেন। এতে একাধিক ব্রাউজারে প্যারালাল টেস্টিং করা সম্ভব হয়।
- Jasmine + WebDriverIO
WebDriverIO একটি ওয়েব ড্রাইভার টুল যা ব্রাউজার অটোমেশন এবং প্যারালাল টেস্টিং সমর্থন করে। JasmineJS টেস্ট রান করতে WebDriverIO ব্যবহার করা যেতে পারে, যা প্যারালাল টেস্টিং পরিচালনা করে। এটি একাধিক সার্ভারে টেস্ট পরিচালনা করতে সক্ষম।
WebDriverIO কনফিগারেশন উদাহরণ:
// wdio.conf.js
exports.config = {
capabilities: [{
maxInstances: 5, // একসঙ্গে ৫টি ব্রাউজারে টেস্ট চালানো যাবে
browserName: 'chrome'
}],
specs: [
'./spec/**/*.js'
],
framework: 'jasmine'
};
এখানে, maxInstances নির্ধারণ করে কতগুলো ব্রাউজারে প্যারালাল টেস্ট চালানো যাবে।
Distributed টেস্টিং
ডিস্ট্রিবিউটেড টেস্টিং বলতে বোঝায় বিভিন্ন সার্ভারে টেস্ট রান করা, যাতে একটি পরিবেশের ওপর অতিরিক্ত চাপ না পড়ে এবং টেস্টের মোট সময় কমে যায়। এই ধরনের টেস্টিং বড় প্রকল্প বা ক্লাউড বেসড অ্যাপ্লিকেশনগুলির জন্য আদর্শ, যেখানে একাধিক সিস্টেমে টেস্ট একযোগে চালানো হয়।
Distributed টেস্টিং করার জন্য ব্যবহৃত টুলস
- Sauce Labs
Sauce Labs একটি ক্লাউড বেসড টেস্টিং প্ল্যাটফর্ম যা প্যারালাল এবং ডিস্ট্রিবিউটেড টেস্টিং সমর্থন করে। এটি একাধিক ব্রাউজার এবং অপারেটিং সিস্টেমে JasmineJS টেস্ট চালানোর জন্য ব্যবহার করা যেতে পারে। Sauce Labs এর মাধ্যমে আপনি JasmineJS টেস্ট রান করতে পারেন এবং প্যারালাল টেস্টিং পরিচালনা করতে পারেন।
Sauce Labs ব্যবহার করে JasmineJS টেস্ট চালানোর জন্য আপনাকে তাদের API ব্যবহার করে কনফিগারেশন সেটআপ করতে হবে, যেখানে প্যারালাল টেস্টিং এর জন্য নির্দিষ্ট টেস্ট শার্ডিং প্রযুক্তি কাজ করে।
- BrowserStack
BrowserStack একটি ক্লাউড-ভিত্তিক টেস্টিং প্ল্যাটফর্ম যা রিয়েল-ব্রাউজারে টেস্টিং করতে সাহায্য করে। এটি JasmineJS সহ অন্যান্য টেস্টিং ফ্রেমওয়ার্কের জন্য প্যারালাল এবং ডিস্ট্রিবিউটেড টেস্টিং সমর্থন করে। JasmineJS টেস্ট রানের জন্য BrowserStack সলিউশন সহজভাবে ক্লাউডে একাধিক পরিবেশে টেস্ট রান করতে সক্ষম।
BrowserStack কনফিগারেশন উদাহরণ:
// wdio.conf.js
exports.config = {
user: process.env.BROWSERSTACK_USERNAME,
key: process.env.BROWSERSTACK_ACCESS_KEY,
capabilities: [{
browserName: 'chrome',
browser_version: 'latest',
os: 'Windows',
os_version: '10',
resolution: '1920x1080',
'browserstack.local': 'false',
'browserstack.debug': 'true'
}],
services: ['browserstack'],
framework: 'jasmine',
specs: ['./spec/**/*.js']
};
এখানে, browserstack সার্ভিস ব্যবহার করে JasmineJS টেস্ট ডিস্ট্রিবিউটেড পরিবেশে চালানো হচ্ছে।
Parallel এবং Distributed টেস্টিং এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | Parallel টেস্টিং | Distributed টেস্টিং |
|---|---|---|
| কী হয় | একাধিক টেস্ট একসঙ্গে একাধিক প্রক্রিয়ায় চালানো | একাধিক সার্ভারে টেস্ট রান করা |
| ব্যবহার | একাধিক ব্রাউজার বা একই ব্রাউজারে একাধিক প্রক্রিয়া | বিভিন্ন সার্ভারে বা ক্লাউডে টেস্ট চালানো |
| পারফরম্যান্স | দ্রুত, তবে এক সার্ভারে সীমাবদ্ধ | দ্রুত, অনেক বেশি রিসোর্সে টেস্ট চালানো সম্ভব |
| ব্রাউজার সাপোর্ট | একাধিক ব্রাউজার প্যারালাল টেস্টিং | ব্রাউজার এবং প্ল্যাটফর্মের সমন্বয়ে টেস্ট করা |
সারাংশ
- Parallel টেস্টিং: একাধিক টেস্ট একসঙ্গে চালানো এবং একাধিক ব্রাউজারে টেস্ট করা। এটি বড় অ্যাপ্লিকেশন বা ওয়েবসাইটের জন্য কার্যকর।
- Distributed টেস্টিং: টেস্টগুলো বিভিন্ন সার্ভারে বা ক্লাউডে চালানো হয়, যা বৃহৎ টেস্ট স্যুটে কাজ করে এবং কোডের একাধিক অংশ একযোগে পরীক্ষা করা যায়।
- Karma, WebDriverIO, Sauce Labs, এবং BrowserStack সহ বিভিন্ন টুলস ব্যবহার করে JasmineJS এর মাধ্যমে প্যারালাল এবং ডিস্ট্রিবিউটেড টেস্টিং করা সম্ভব।
এই টুলগুলো এবং টেকনিক ব্যবহারের মাধ্যমে আপনি টেস্টিং প্রক্রিয়াকে আরও দ্রুত এবং দক্ষ করতে পারেন, যা বড় প্রকল্পের জন্য অত্যন্ত উপযোগী।
Read more